数据大清洗 您所在的位置:网站首页 numpy 重复二维数组 数据大清洗

数据大清洗

2023-08-06 07:16| 来源: 网络整理| 查看: 265

目录 一、数组排序二、数组去重与重复三、数组统计与分析

一、数组排序

sort 函数是最常用的排序方法。 arr.sort() sort 函数也可以指定一个 axis 参数,使得 sort 函数可以沿着指定轴对数据集进行排 序。axis=1 为沿横轴排序; axis=0 为沿纵轴排序。

import numpy as np # 创建一个一维的数组 # arr = np.array([5, 4, 6, 8, 1, 2, 9]) # print('arr:\n', arr) # # # # # 对数组进行排序 ---快排--对列的方向的进行排序--对原数组直接产生影响 # arr.sort() # # 升序排序 # print('排序之后的数组:\n', arr) # 创建二维的数组 arr = np.array([[7, 5, 8], [9, 6, 4], [3, 4, 9]]) print(arr) # 对二维数组进行排序 # 列的方向进行升序排序 # 如:此时排序,各行之间毫无关系,只是在各行内部,对不同的列进行升序排序 # arr.sort() # 行的方向上升序排序 # 如:此时排序,各列之间毫无关系,只是在各列内部,对不同的行进行升序排序 arr.sort(axis=0) print('排序之后的数组:\n', arr) print("***********************************") # 间接排序 # 不对数组排序,只是返回数组排序之后的下标 arr2 = np.array([5, 4, 6, 8, 1, 2, 9]) print('arr:\n', arr2) # 使用np.argsort进行排序 res = np.argsort(arr2) print('排序之后的结果:\n',res) print("***********************************") # 二维数组 arr3 = np.array([[7, 5, 8], [9, 6, 4], [3, 4, 9]]) print(arr3) # 列的方向 ---返回的是对应的下标 res = np.argsort(arr3, axis=-1) print(res) 二、数组去重与重复

(一)数组去重 通过 unique 函数可以找出数组中的唯一值并返回已排序的结果。 应用场景: 统计类别种类数目; 信息清洗,去掉重复数据,例如班级学员统计,可以依据电话号码等属性进行去重。

import numpy as np # 数组去重功能 # 创建数组 # arr = np.array([2, 2, 2, 2, 1, 1, 1, 5, 5, 5, 4, 4, 4, 6, 6, 6]) # print(arr) # arr = np.array(['zs', 'ls', 'ww', 'zl', 'kk', 'zz', 'zs', 'ls', 'ww', 'zl', 'kk']) # print(arr) arr = np.array(['小明','小名','小名','小名','小花','小华','小花']) print(arr) print('*' * 100) # 查看该数组中具有哪些数据 # 可以使用unique进行去重,---兼并排序 # 英文数组 也适用 # 中文数组 也适用 ---- 中文数组排序 ----编码---unicode---之后在进行ansii排序 res = np.unique(arr) print(res)

(二)数组重复 可以使用 np.tile 和 np.repeat 来进行数组重复

这两个函数的主要区别在于,tile 函数是对数组进行重复操作,repeat 函数是对数组 中的每个元素进行重复操作

import numpy as np # 创建一个二维数组 arr = np.arange(9).reshape((3, 3)) print('arr:\n', arr) print('*' * 100) # 重复 -# np.tile --以数组的整体为单位进行重复 # 参数1 需要重复的数组 # 参数2 重复次数 ---可以指定按照对应的维度重复的次数 res = np.tile(arr, 2) # 现在列的方向重复2次之后,以整体再在行的方向重复2次,再在以整体在块的方向重复2次 res1 = np.tile(arr, [2, 2, 2]) print(res1) print("****************************") # np.repeat # 重复 # 参数1 需要重复的数组 # 参数2 重复的次数 # axis 指定重复方向、轴 # 若指定轴,沿着轴的方向以整行、整列为一个重复单位来重复指定的次数 res3 = np.repeat(arr, 2, axis=1) # 如果不指定轴,默认会将数组展开,然后按照列的方向 以每一个元素为一个重复单位来重复指定次数 res4 = np.repeat(arr, 2) # 不能省略重复次数 print(res3) print(res4) 三、数组统计与分析

在这里插入图片描述

import numpy as np # 创建一个二维数组 arr = np.arange(1, 17).reshape((4, 4)) print('arr:\n', arr) print('*' * 100) # np.统计指标 --numpy里面的方法 # arr.统计指标 --ndarray里面的方法 # 沿着行的方向 ---向下统计的 # # sum(和) -----相加 print('对arr 进行求和:', np.sum(arr, axis=0)) # # # mean(均值) -----和/个数 print('对arr 进行求均值:', np.mean(arr, axis=0)) # # # std(标准差) ---反应的数据的离散程度 print('对arr 进行求标准差:', np.std(arr, axis=0)) # # # var(方差) ---标准差的平方---反应的数据的离散程度 print('对arr 进行求方差:', np.var(arr, axis=0)) # # # min(最小值) print('对arr 进行求最小值:', np.min(arr, axis=0)) # # # max(最大值) print('对arr 进行求最大值:', np.max(arr, axis=0)) # # # argmin(最小值的下标) print('对arr 进行求最小值下标:', np.argmin(arr, axis=0)) # # # argmax(最大值的下标) print('对arr 进行求最大值下标:', np.argmax(arr, axis=0)) # # cumsum(累计和) print('对arr 进行求累计和:\n', np.cumsum(arr, axis=0)) # # cumprod(累计积) print('对arr 进行求取累计积:\n', np.cumprod(arr, axis=0)) # 如果不指定轴 ---展开进行成一维进行统计指标 print('对arr 进行求取累计和:\n',np.cumsum(arr)) # ndarray里面的方法 print('对arr 进行求取累计和:\n',arr.cumsum(axis=0))


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有